Za rad sa nizovima karaktera u Turbo Pascal-u koristi se tip string. Niz simbola između apostrofa, predstavlja string konstantu i pripada tipu string. Pri deklarisanju promenljivih ovog tipa koristi se rezervisana reč string za kojom se u uglastim zagradama navodi maksimalna (moguća) dužina stringa. Ako se, npr. upotrebi deklaracija string[80], tada je dužina stringa u granicama od 0 do 80 znakova. Ako se izostavi navođenje broja i samo se zapiše string, to predstavlja isti zapis kao i string[255] što je maksimalna dozvoljena dužina stringa u Turbo Pascal-u.
Primer 1:
Var s, s1, s2, s4,s5 : string;
s3: string [5];
s:= ‘ovo je string’;
s1:= ‘1.45 ’;
s2:=’u stringu s1 nalazi se niz simbola (karaktera) a ne broj 1.45’;
s3:=’12345’;
s4:=’u stringu s3 nema mesta za 67890’;
Pojedinačnom znaku se može pristupiti korišćenjem uglastih zagrada i navođenjem rednog broja znaka npr. s5:=s2[4] posle ove naredbe vrednost stringa s5 je ‘t’
Primer 2:
Program stringovi;
Var st: string;
ch: char;
Begin
st:= 'Neka slova' ;
ch:= st[1];
writeln (ch);
End.
Program će na ekranu ispisati: N koje se nalazi u promenljivoj ch posle dodele.
Zbog velike potrebe za manipulacijom sa stringovima ili delovima stingova razvijene su mnoge funkcije i procedure koje su danas standardni deo Turbo Paskala.
Funkcije za rad sa stringovima
length (st) - vraća dužinu stringa {broj:= Length(st)}
copy (st, poz, n) - vraća podstring iz stringa st, koji ima n karaktera, počev od pozicije poz
var S: String;
begin
S := 'ABCDEF';
S := Copy(S, 2, 3); { 'BCD' }
end.
concat(str1, str2 ... strn) - povezuje dva ili više stringova u jedan (slobodno rečeno lepeći ih , stručan izraz za lepljenje nizova karaktera je konkatenacija)
var
S: String;
begin
S := Concat('ABC', 'DEF'); { 'ABCDE' }
end.
U Turbo Paskalu je moguće izvršiti konkatenaciju stringova i operatorom plus (+) na primer : S := 'ABC'+'DEF'; { 'ABCDE' }
pos(str1, str2) - vraća poziciju od koje počinje podstring str1 u stringu str2, ako postoji, a ako ne postoji vraća broj nula.
program podstring;
var
st,st2 : string;
br:byte;
Begin
st:= 'abcdefdsfsdfsd';
st2:='bc';
br:=pos(st2,st);
writeln(br);
End.
Program ispisuje broj 2.
Procedure za rad sa stringovima
delete(st, poz, n) - briše podstring dužine n, iz stringa st, počev od pozicije poz
var
s: string;
begin
s := 'Honest Abe Lincoln';
Delete(s,8,4);
Writeln(s); { 'Honest Lincoln' }
end.
insert(str1, str2, poz) - umeće string str1 u string str2 počev od pozicije poz
var
S: String;
begin
S := 'Honest Lincoln';
Insert('Abe ', S, 8); { 'Honest Abe Lincoln' }
end.
komentari u programu
Ako želimo da u sam program upišemo neki naš komentar koji nam pomaže da razumemo pojedine programske linije tada moramo koristiti vitičaste zagrade {}. Sve to je navedeno u vitičastim zagradama ne utiče na izvršavanje programa.